package com.ht.api.call.impl;

import org.springframework.stereotype.Component;

import com.ht.api.bean.AjaxResult;
import com.ht.api.bean.LoginBean;
import com.ht.api.call.AbstractCall;
import com.ht.api.call.ICall;
import com.ht.api.call.func.IFunctionCall;
import com.ht.api.db.exception.HtException;
import com.ht.api.db.util.FunctionUtil;

import cn.hutool.json.JSONObject;

/**
 * 业务执行器:func
 * @author asq
 * @createTime 2024年12月23日 21:02:18
 */
@Component
public class FuncCall extends AbstractCall {
	
	@Override
	public boolean isOpen() {
		return false;
	}

	@Override
	public String getName() {
		return "通用执行任务";
	}

	@Override
	public AjaxResult doExecute(LoginBean me, JSONObject param, JSONObject config) {
		String func = config.getStr("func");
		IFunctionCall funcCall = FunctionUtil.getFunction(func);
		if (funcCall == null) {
			throw new HtException("找不到call函数：" + func);
		}
		JSONObject json = param.getJSONObject(ICall.PARAM);

		
		return AjaxResult.success(funcCall.execute(me, json, null));
	}

}
